package com.jrx.anytxn.transaction.service;

import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.transaction.entity.AmLoanMainInfo;
import com.jrx.anytxn.transaction.entity.TlLoanStagingMapping;
import com.jrx.anytxn.transaction.entity.TlPaymentLog;
import com.jrx.anytxn.transaction.entity.TlWaivePaymentLog;

import java.util.Date;
import java.util.List;

/**
 *  还款分配service
 *
 * @author : xiaoyu.jing
 * date: 2019-10-15 00:22
 **/
public interface IDealWaivePaymentService {

    /**
     * 正常还款贴息还款分配
     * @param tlWaivePaymentLog
     * @param loanList
     * @param bussinessDate
     */
    void dealWaiveBillPay(TlWaivePaymentLog tlWaivePaymentLog, List<AmLoanMainInfo> loanList, Date bussinessDate) throws TxnException;

    /**
     * 提前还当期贴息还款分配
     * @param tlWaivePaymentLog
     * @param loanList
     * @param bussinessDate
     */
    void dealWaiveBillPrepayCurr(TlWaivePaymentLog tlWaivePaymentLog, List<AmLoanMainInfo> loanList, Date bussinessDate) throws TxnException;

    /**
     * 提前结清或账单分期贴息还款
     * @param tlWaivePaymentLog
     * @param loanList
     * @param bussinessDate
     */
    void dealWaiveBillPayOff(TlWaivePaymentLog tlWaivePaymentLog, List<AmLoanMainInfo> loanList, Date bussinessDate) throws TxnException;
}
